package cn.com.cpic.insurance.rulecheck.core.function;

import java.io.Serializable;

import cn.com.cpic.insurance.rulecheck.core.exception.OperateException;

/**
 * 可在表达式中通过call()调用的函数
 * 
 * @author 代波
 * @since 2011-8-15
 */
public interface CallFunction extends Serializable {
	/**
	 * 执行函数调用并返回结果。目前函数只支持返回4种类型的结果：Long、Double、Boolean和String，其他类型结果会造成表达式运算异常。
	 * 
	 * @param paras 函数的执行参数
	 * @return 函数执行的结果
	 * @throws OperateException 函数操作中出现异常
	 */
	Comparable<?> call(Comparable<?>... paras) throws OperateException;
}
